package com.yyfax.pay.order.model.to.payin;

import java.util.List;

import com.yyfax.pay.common.model.to.YYPayParams;

/**
 * 代付异步通知请求参数
 * 
 * @author buyi
 * @date 2017-04-15 16:26:40
 * @since v1.0.0
 */
@SuppressWarnings("serial")
public class PayinBatchResultNotifyParams extends YYPayParams {
	private PayinBatchResultNotify params;

	public static class PayinBatchResultNotify extends YYPayParams {
		private Integer resultCode;
		private String resultMsg;
		private String merchantCode;
		private String paymentCode;
		private String orderId;
		/** 商户批量日期 */
		private String batchDate;
		/** 商户批次号 */
		private String batchNo;
		/** 成功笔数 */
		private int successCount;
		/** 成功金额 */
		private long successAmount;
		/** 失败笔数 */
		private int failCount;
		/** 失败金额 */
		private long failAmount;
		/** 未知笔数 */
		private int unknownCount;
		/** 未知金额 */
		private long unknownAmount;
		/** 批量代付结果列表 */
		private List<PayinResultNotify> dataList;

		public Integer getResultCode() {
			return resultCode;
		}

		public void setResultCode(Integer resultCode) {
			this.resultCode = resultCode;
		}

		public String getResultMsg() {
			return resultMsg;
		}

		public void setResultMsg(String resultMsg) {
			this.resultMsg = resultMsg;
		}

		public String getMerchantCode() {
			return merchantCode;
		}

		public void setMerchantCode(String merchantCode) {
			this.merchantCode = merchantCode;
		}

		public String getPaymentCode() {
			return paymentCode;
		}

		public void setPaymentCode(String paymentCode) {
			this.paymentCode = paymentCode;
		}

		public String getOrderId() {
			return orderId;
		}

		public void setOrderId(String orderId) {
			this.orderId = orderId;
		}

		public String getBatchDate() {
			return batchDate;
		}

		public void setBatchDate(String batchDate) {
			this.batchDate = batchDate;
		}

		public String getBatchNo() {
			return batchNo;
		}

		public void setBatchNo(String batchNo) {
			this.batchNo = batchNo;
		}

		public int getSuccessCount() {
			return successCount;
		}

		public void setSuccessCount(int successCount) {
			this.successCount = successCount;
		}

		public long getSuccessAmount() {
			return successAmount;
		}

		public void setSuccessAmount(long successAmount) {
			this.successAmount = successAmount;
		}

		public int getFailCount() {
			return failCount;
		}

		public void setFailCount(int failCount) {
			this.failCount = failCount;
		}

		public long getFailAmount() {
			return failAmount;
		}

		public void setFailAmount(long failAmount) {
			this.failAmount = failAmount;
		}

		public int getUnknownCount() {
			return unknownCount;
		}

		public void setUnknownCount(int unknownCount) {
			this.unknownCount = unknownCount;
		}

		public long getUnknownAmount() {
			return unknownAmount;
		}

		public void setUnknownAmount(long unknownAmount) {
			this.unknownAmount = unknownAmount;
		}

		public List<PayinResultNotify> getDataList() {
			return dataList;
		}

		public void setDataList(List<PayinResultNotify> dataList) {
			this.dataList = dataList;
		}

		public static class PayinResultNotify extends YYPayParams {
			private String orderId;
			private String userId;
			private String payerCardNo;
			private String payerName;
			private int amount;
			private String serialNo;
			private Integer resultCode;
			private String resultMsg;

			@Override
			public String[] signFields() {
				return new String[] { "orderId", "userId", "payerCardNo", "payerName", "amount", "serialNo", "resultCode", "resultMsg" };
			}

			public String getOrderId() {
				return orderId;
			}

			public void setOrderId(String orderId) {
				this.orderId = orderId;
			}

			public String getUserId() {
				return userId;
			}

			public void setUserId(String userId) {
				this.userId = userId;
			}

			public String getPayerCardNo() {
				return payerCardNo;
			}

			public void setPayerCardNo(String payerCardNo) {
				this.payerCardNo = payerCardNo;
			}

			public String getPayerName() {
				return payerName;
			}

			public void setPayerName(String payerName) {
				this.payerName = payerName;
			}

			public int getAmount() {
				return amount;
			}

			public void setAmount(int amount) {
				this.amount = amount;
			}

			public String getSerialNo() {
				return serialNo;
			}

			public void setSerialNo(String serialNo) {
				this.serialNo = serialNo;
			}

			public Integer getResultCode() {
				return resultCode;
			}

			public void setResultCode(Integer resultCode) {
				this.resultCode = resultCode;
			}

			public String getResultMsg() {
				return resultMsg;
			}

			public void setResultMsg(String resultMsg) {
				this.resultMsg = resultMsg;
			}

		}

		@Override
		public String[] signFields() {
			return new String[] { " resultCode", "resultMsg", "merchantCode", "paymentCode", "orderId", "batchDate", "batchNo", "successCount",
					"successAmount", "failCount", "failAmount", "unknownCount", "unknownAmount" };
		}
	}

	@Override
	public String[] signFields() {
		return null;
	}

	public PayinBatchResultNotify getParams() {
		return params;
	}

	public void setParams(PayinBatchResultNotify params) {
		this.params = params;
	}

}
